package com.open.api.wechat.app.request.condition;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Builder;
import lombok.Data;

/**
 * @author : zhaoxuan
 * @date : 2021/7/1 17:33
 * @description : WeChatUrlSchemeCondition
 * @version: 1.0
 */
@Data
@Builder
public class WeChatUrlSchemeCondition {

    /**
     * 否	跳转到的目标小程序信息。
     */
    @JsonProperty("jump_wxa")
    private JumpWxa jumpWxa;
    /**
     * 否	生成的 scheme 码类型，到期失效：true，永久有效：false。
     */
    @JsonProperty("is_expire")
    private Boolean isExpire = Boolean.FALSE;
    /**
     * 否	到期失效的 scheme 码失效类型，失效时间：0，失效间隔天数：1
     */
    @JsonProperty("expire_type")
    private Integer expire_type = 0;
    /**
     * 否	到期失效的 scheme 码的失效时间，为 Unix 时间戳。
     * 生成的到期失效 scheme 码在该时间前有效。最长有效期为1年。is_expire 为 true 且 expire_type 为 0 时必填
     */
    @JsonProperty("expire_time")
    private Integer expire_time;
    /**
     * 否	到期失效的 scheme 码的失效间隔天数。生成的到期失效 scheme 码在该间隔时间到达前有效。最长间隔天数为365天。is_expire 为 true 且 expire_type 为 1 时必填
     */
    @JsonProperty("expire_interval")
    private Integer expire_interval;

    @Data
    public class JumpWxa{
        /**
         * 通过 scheme 码进入的小程序页面路径，必须是已经发布的小程序存在的页面，不可携带 query。path 为空时会跳转小程序主页
         */
        private String path;
        /**
         * 通过 scheme 码进入小程序时的 query，最大1024个字符，只支持数字，大小写英文以及部分特殊字符：!#$&'()*+,/:;=?@-._~
         */
        private String query;
    }
}
